/**
 */
package org.xtext.context.aware.eventX.impl;

import org.eclipse.emf.ecore.EAttribute;
import org.eclipse.emf.ecore.EClass;
import org.eclipse.emf.ecore.EPackage;
import org.eclipse.emf.ecore.EReference;

import org.eclipse.emf.ecore.impl.EPackageImpl;

import org.xtext.context.aware.eventX.Action;
import org.xtext.context.aware.eventX.ActionType;
import org.xtext.context.aware.eventX.BasicEvent;
import org.xtext.context.aware.eventX.CloseBy;
import org.xtext.context.aware.eventX.ConditionalEvent;
import org.xtext.context.aware.eventX.ContextAwareModel;
import org.xtext.context.aware.eventX.Date;
import org.xtext.context.aware.eventX.Element;
import org.xtext.context.aware.eventX.Event;
import org.xtext.context.aware.eventX.EventAttributes;
import org.xtext.context.aware.eventX.EventType;
import org.xtext.context.aware.eventX.EventXFactory;
import org.xtext.context.aware.eventX.EventXPackage;
import org.xtext.context.aware.eventX.Notification;
import org.xtext.context.aware.eventX.OpenBrowser;
import org.xtext.context.aware.eventX.ParallelAction;
import org.xtext.context.aware.eventX.PlayMedia;
import org.xtext.context.aware.eventX.PlaySound;
import org.xtext.context.aware.eventX.RoomEvent;
import org.xtext.context.aware.eventX.SequentialAction;
import org.xtext.context.aware.eventX.SimpleAction;
import org.xtext.context.aware.eventX.Time;
import org.xtext.context.aware.eventX.TimeTable;
import org.xtext.context.aware.eventX.TransitionArea;
import org.xtext.context.aware.eventX.Vibrate;
import org.xtext.context.aware.eventX.WeekDayTime;

/**
 * <!-- begin-user-doc -->
 * An implementation of the model <b>Package</b>.
 * <!-- end-user-doc -->
 * @generated
 */
public class EventXPackageImpl extends EPackageImpl implements EventXPackage
{
  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  private EClass contextAwareModelEClass = null;

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  private EClass elementEClass = null;

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  private EClass timeTableEClass = null;

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  private EClass dateEClass = null;

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  private EClass weekDayTimeEClass = null;

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  private EClass timeEClass = null;

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  private EClass eventEClass = null;

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  private EClass eventTypeEClass = null;

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  private EClass basicEventEClass = null;

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  private EClass conditionalEventEClass = null;

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  private EClass roomEventEClass = null;

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  private EClass closeByEClass = null;

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  private EClass transitionAreaEClass = null;

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  private EClass eventAttributesEClass = null;

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  private EClass actionEClass = null;

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  private EClass simpleActionEClass = null;

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  private EClass sequentialActionEClass = null;

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  private EClass parallelActionEClass = null;

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  private EClass actionTypeEClass = null;

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  private EClass vibrateEClass = null;

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  private EClass playSoundEClass = null;

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  private EClass playMediaEClass = null;

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  private EClass openBrowserEClass = null;

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  private EClass notificationEClass = null;

  /**
   * Creates an instance of the model <b>Package</b>, registered with
   * {@link org.eclipse.emf.ecore.EPackage.Registry EPackage.Registry} by the package
   * package URI value.
   * <p>Note: the correct way to create the package is via the static
   * factory method {@link #init init()}, which also performs
   * initialization of the package, or returns the registered package,
   * if one already exists.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @see org.eclipse.emf.ecore.EPackage.Registry
   * @see org.xtext.context.aware.eventX.EventXPackage#eNS_URI
   * @see #init()
   * @generated
   */
  private EventXPackageImpl()
  {
    super(eNS_URI, EventXFactory.eINSTANCE);
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  private static boolean isInited = false;

  /**
   * Creates, registers, and initializes the <b>Package</b> for this model, and for any others upon which it depends.
   * 
   * <p>This method is used to initialize {@link EventXPackage#eINSTANCE} when that field is accessed.
   * Clients should not invoke it directly. Instead, they should simply access that field to obtain the package.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @see #eNS_URI
   * @see #createPackageContents()
   * @see #initializePackageContents()
   * @generated
   */
  public static EventXPackage init()
  {
    if (isInited) return (EventXPackage)EPackage.Registry.INSTANCE.getEPackage(EventXPackage.eNS_URI);

    // Obtain or create and register package
    EventXPackageImpl theEventXPackage = (EventXPackageImpl)(EPackage.Registry.INSTANCE.get(eNS_URI) instanceof EventXPackageImpl ? EPackage.Registry.INSTANCE.get(eNS_URI) : new EventXPackageImpl());

    isInited = true;

    // Create package meta-data objects
    theEventXPackage.createPackageContents();

    // Initialize created meta-data
    theEventXPackage.initializePackageContents();

    // Mark meta-data to indicate it can't be changed
    theEventXPackage.freeze();

  
    // Update the registry and return the package
    EPackage.Registry.INSTANCE.put(EventXPackage.eNS_URI, theEventXPackage);
    return theEventXPackage;
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EClass getContextAwareModel()
  {
    return contextAwareModelEClass;
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EReference getContextAwareModel_Elements()
  {
    return (EReference)contextAwareModelEClass.getEStructuralFeatures().get(0);
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EClass getElement()
  {
    return elementEClass;
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EAttribute getElement_Name()
  {
    return (EAttribute)elementEClass.getEStructuralFeatures().get(0);
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EClass getTimeTable()
  {
    return timeTableEClass;
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EReference getTimeTable_DateFrom()
  {
    return (EReference)timeTableEClass.getEStructuralFeatures().get(0);
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EReference getTimeTable_DateTo()
  {
    return (EReference)timeTableEClass.getEStructuralFeatures().get(1);
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EReference getTimeTable_Weekdays()
  {
    return (EReference)timeTableEClass.getEStructuralFeatures().get(2);
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EClass getDate()
  {
    return dateEClass;
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EAttribute getDate_Year()
  {
    return (EAttribute)dateEClass.getEStructuralFeatures().get(0);
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EAttribute getDate_Month()
  {
    return (EAttribute)dateEClass.getEStructuralFeatures().get(1);
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EAttribute getDate_Day()
  {
    return (EAttribute)dateEClass.getEStructuralFeatures().get(2);
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EClass getWeekDayTime()
  {
    return weekDayTimeEClass;
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EAttribute getWeekDayTime_Day()
  {
    return (EAttribute)weekDayTimeEClass.getEStructuralFeatures().get(0);
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EReference getWeekDayTime_TimeFrom()
  {
    return (EReference)weekDayTimeEClass.getEStructuralFeatures().get(1);
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EReference getWeekDayTime_TimeTo()
  {
    return (EReference)weekDayTimeEClass.getEStructuralFeatures().get(2);
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EClass getTime()
  {
    return timeEClass;
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EAttribute getTime_Hours()
  {
    return (EAttribute)timeEClass.getEStructuralFeatures().get(0);
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EAttribute getTime_Minutes()
  {
    return (EAttribute)timeEClass.getEStructuralFeatures().get(1);
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EClass getEvent()
  {
    return eventEClass;
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EAttribute getEvent_HasAction()
  {
    return (EAttribute)eventEClass.getEStructuralFeatures().get(0);
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EReference getEvent_ActionType()
  {
    return (EReference)eventEClass.getEStructuralFeatures().get(1);
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EReference getEvent_Events()
  {
    return (EReference)eventEClass.getEStructuralFeatures().get(2);
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EClass getEventType()
  {
    return eventTypeEClass;
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EClass getBasicEvent()
  {
    return basicEventEClass;
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EClass getConditionalEvent()
  {
    return conditionalEventEClass;
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EReference getConditionalEvent_Basic()
  {
    return (EReference)conditionalEventEClass.getEStructuralFeatures().get(0);
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EAttribute getConditionalEvent_Logic()
  {
    return (EAttribute)conditionalEventEClass.getEStructuralFeatures().get(1);
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EReference getConditionalEvent_Nested()
  {
    return (EReference)conditionalEventEClass.getEStructuralFeatures().get(2);
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EClass getRoomEvent()
  {
    return roomEventEClass;
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EAttribute getRoomEvent_EventType()
  {
    return (EAttribute)roomEventEClass.getEStructuralFeatures().get(0);
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EAttribute getRoomEvent_Name()
  {
    return (EAttribute)roomEventEClass.getEStructuralFeatures().get(1);
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EAttribute getRoomEvent_HasTime()
  {
    return (EAttribute)roomEventEClass.getEStructuralFeatures().get(2);
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EReference getRoomEvent_Time()
  {
    return (EReference)roomEventEClass.getEStructuralFeatures().get(3);
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EClass getCloseBy()
  {
    return closeByEClass;
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EAttribute getCloseBy_Name()
  {
    return (EAttribute)closeByEClass.getEStructuralFeatures().get(0);
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EReference getCloseBy_Attributes()
  {
    return (EReference)closeByEClass.getEStructuralFeatures().get(1);
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EClass getTransitionArea()
  {
    return transitionAreaEClass;
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EAttribute getTransitionArea_From()
  {
    return (EAttribute)transitionAreaEClass.getEStructuralFeatures().get(0);
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EReference getTransitionArea_AttributesFrom()
  {
    return (EReference)transitionAreaEClass.getEStructuralFeatures().get(1);
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EAttribute getTransitionArea_To()
  {
    return (EAttribute)transitionAreaEClass.getEStructuralFeatures().get(2);
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EReference getTransitionArea_AttributesTo()
  {
    return (EReference)transitionAreaEClass.getEStructuralFeatures().get(3);
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EClass getEventAttributes()
  {
    return eventAttributesEClass;
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EAttribute getEventAttributes_HasRadius()
  {
    return (EAttribute)eventAttributesEClass.getEStructuralFeatures().get(0);
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EAttribute getEventAttributes_Radius()
  {
    return (EAttribute)eventAttributesEClass.getEStructuralFeatures().get(1);
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EAttribute getEventAttributes_HasTime()
  {
    return (EAttribute)eventAttributesEClass.getEStructuralFeatures().get(2);
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EReference getEventAttributes_Time()
  {
    return (EReference)eventAttributesEClass.getEStructuralFeatures().get(3);
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EAttribute getEventAttributes_HasTolerance()
  {
    return (EAttribute)eventAttributesEClass.getEStructuralFeatures().get(4);
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EAttribute getEventAttributes_Tolerance()
  {
    return (EAttribute)eventAttributesEClass.getEStructuralFeatures().get(5);
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EClass getAction()
  {
    return actionEClass;
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EReference getAction_Event()
  {
    return (EReference)actionEClass.getEStructuralFeatures().get(0);
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EClass getSimpleAction()
  {
    return simpleActionEClass;
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EReference getSimpleAction_ActionType()
  {
    return (EReference)simpleActionEClass.getEStructuralFeatures().get(0);
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EClass getSequentialAction()
  {
    return sequentialActionEClass;
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EReference getSequentialAction_ActionType()
  {
    return (EReference)sequentialActionEClass.getEStructuralFeatures().get(0);
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EClass getParallelAction()
  {
    return parallelActionEClass;
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EReference getParallelAction_ActionType()
  {
    return (EReference)parallelActionEClass.getEStructuralFeatures().get(0);
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EClass getActionType()
  {
    return actionTypeEClass;
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EReference getActionType_ActionType()
  {
    return (EReference)actionTypeEClass.getEStructuralFeatures().get(0);
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EClass getVibrate()
  {
    return vibrateEClass;
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EAttribute getVibrate_Vibrate()
  {
    return (EAttribute)vibrateEClass.getEStructuralFeatures().get(0);
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EAttribute getVibrate_HasDuration()
  {
    return (EAttribute)vibrateEClass.getEStructuralFeatures().get(1);
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EAttribute getVibrate_Duration()
  {
    return (EAttribute)vibrateEClass.getEStructuralFeatures().get(2);
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EClass getPlaySound()
  {
    return playSoundEClass;
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EAttribute getPlaySound_PlaySound()
  {
    return (EAttribute)playSoundEClass.getEStructuralFeatures().get(0);
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EAttribute getPlaySound_SoundFileName()
  {
    return (EAttribute)playSoundEClass.getEStructuralFeatures().get(1);
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EClass getPlayMedia()
  {
    return playMediaEClass;
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EAttribute getPlayMedia_PlayMedia()
  {
    return (EAttribute)playMediaEClass.getEStructuralFeatures().get(0);
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EAttribute getPlayMedia_MediaFileName()
  {
    return (EAttribute)playMediaEClass.getEStructuralFeatures().get(1);
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EClass getOpenBrowser()
  {
    return openBrowserEClass;
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EAttribute getOpenBrowser_OpenBrowser()
  {
    return (EAttribute)openBrowserEClass.getEStructuralFeatures().get(0);
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EAttribute getOpenBrowser_Url()
  {
    return (EAttribute)openBrowserEClass.getEStructuralFeatures().get(1);
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EClass getNotification()
  {
    return notificationEClass;
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EAttribute getNotification_Notification()
  {
    return (EAttribute)notificationEClass.getEStructuralFeatures().get(0);
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EAttribute getNotification_Message()
  {
    return (EAttribute)notificationEClass.getEStructuralFeatures().get(1);
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public EventXFactory getEventXFactory()
  {
    return (EventXFactory)getEFactoryInstance();
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  private boolean isCreated = false;

  /**
   * Creates the meta-model objects for the package.  This method is
   * guarded to have no affect on any invocation but its first.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public void createPackageContents()
  {
    if (isCreated) return;
    isCreated = true;

    // Create classes and their features
    contextAwareModelEClass = createEClass(CONTEXT_AWARE_MODEL);
    createEReference(contextAwareModelEClass, CONTEXT_AWARE_MODEL__ELEMENTS);

    elementEClass = createEClass(ELEMENT);
    createEAttribute(elementEClass, ELEMENT__NAME);

    timeTableEClass = createEClass(TIME_TABLE);
    createEReference(timeTableEClass, TIME_TABLE__DATE_FROM);
    createEReference(timeTableEClass, TIME_TABLE__DATE_TO);
    createEReference(timeTableEClass, TIME_TABLE__WEEKDAYS);

    dateEClass = createEClass(DATE);
    createEAttribute(dateEClass, DATE__YEAR);
    createEAttribute(dateEClass, DATE__MONTH);
    createEAttribute(dateEClass, DATE__DAY);

    weekDayTimeEClass = createEClass(WEEK_DAY_TIME);
    createEAttribute(weekDayTimeEClass, WEEK_DAY_TIME__DAY);
    createEReference(weekDayTimeEClass, WEEK_DAY_TIME__TIME_FROM);
    createEReference(weekDayTimeEClass, WEEK_DAY_TIME__TIME_TO);

    timeEClass = createEClass(TIME);
    createEAttribute(timeEClass, TIME__HOURS);
    createEAttribute(timeEClass, TIME__MINUTES);

    eventEClass = createEClass(EVENT);
    createEAttribute(eventEClass, EVENT__HAS_ACTION);
    createEReference(eventEClass, EVENT__ACTION_TYPE);
    createEReference(eventEClass, EVENT__EVENTS);

    eventTypeEClass = createEClass(EVENT_TYPE);

    basicEventEClass = createEClass(BASIC_EVENT);

    conditionalEventEClass = createEClass(CONDITIONAL_EVENT);
    createEReference(conditionalEventEClass, CONDITIONAL_EVENT__BASIC);
    createEAttribute(conditionalEventEClass, CONDITIONAL_EVENT__LOGIC);
    createEReference(conditionalEventEClass, CONDITIONAL_EVENT__NESTED);

    roomEventEClass = createEClass(ROOM_EVENT);
    createEAttribute(roomEventEClass, ROOM_EVENT__EVENT_TYPE);
    createEAttribute(roomEventEClass, ROOM_EVENT__NAME);
    createEAttribute(roomEventEClass, ROOM_EVENT__HAS_TIME);
    createEReference(roomEventEClass, ROOM_EVENT__TIME);

    closeByEClass = createEClass(CLOSE_BY);
    createEAttribute(closeByEClass, CLOSE_BY__NAME);
    createEReference(closeByEClass, CLOSE_BY__ATTRIBUTES);

    transitionAreaEClass = createEClass(TRANSITION_AREA);
    createEAttribute(transitionAreaEClass, TRANSITION_AREA__FROM);
    createEReference(transitionAreaEClass, TRANSITION_AREA__ATTRIBUTES_FROM);
    createEAttribute(transitionAreaEClass, TRANSITION_AREA__TO);
    createEReference(transitionAreaEClass, TRANSITION_AREA__ATTRIBUTES_TO);

    eventAttributesEClass = createEClass(EVENT_ATTRIBUTES);
    createEAttribute(eventAttributesEClass, EVENT_ATTRIBUTES__HAS_RADIUS);
    createEAttribute(eventAttributesEClass, EVENT_ATTRIBUTES__RADIUS);
    createEAttribute(eventAttributesEClass, EVENT_ATTRIBUTES__HAS_TIME);
    createEReference(eventAttributesEClass, EVENT_ATTRIBUTES__TIME);
    createEAttribute(eventAttributesEClass, EVENT_ATTRIBUTES__HAS_TOLERANCE);
    createEAttribute(eventAttributesEClass, EVENT_ATTRIBUTES__TOLERANCE);

    actionEClass = createEClass(ACTION);
    createEReference(actionEClass, ACTION__EVENT);

    simpleActionEClass = createEClass(SIMPLE_ACTION);
    createEReference(simpleActionEClass, SIMPLE_ACTION__ACTION_TYPE);

    sequentialActionEClass = createEClass(SEQUENTIAL_ACTION);
    createEReference(sequentialActionEClass, SEQUENTIAL_ACTION__ACTION_TYPE);

    parallelActionEClass = createEClass(PARALLEL_ACTION);
    createEReference(parallelActionEClass, PARALLEL_ACTION__ACTION_TYPE);

    actionTypeEClass = createEClass(ACTION_TYPE);
    createEReference(actionTypeEClass, ACTION_TYPE__ACTION_TYPE);

    vibrateEClass = createEClass(VIBRATE);
    createEAttribute(vibrateEClass, VIBRATE__VIBRATE);
    createEAttribute(vibrateEClass, VIBRATE__HAS_DURATION);
    createEAttribute(vibrateEClass, VIBRATE__DURATION);

    playSoundEClass = createEClass(PLAY_SOUND);
    createEAttribute(playSoundEClass, PLAY_SOUND__PLAY_SOUND);
    createEAttribute(playSoundEClass, PLAY_SOUND__SOUND_FILE_NAME);

    playMediaEClass = createEClass(PLAY_MEDIA);
    createEAttribute(playMediaEClass, PLAY_MEDIA__PLAY_MEDIA);
    createEAttribute(playMediaEClass, PLAY_MEDIA__MEDIA_FILE_NAME);

    openBrowserEClass = createEClass(OPEN_BROWSER);
    createEAttribute(openBrowserEClass, OPEN_BROWSER__OPEN_BROWSER);
    createEAttribute(openBrowserEClass, OPEN_BROWSER__URL);

    notificationEClass = createEClass(NOTIFICATION);
    createEAttribute(notificationEClass, NOTIFICATION__NOTIFICATION);
    createEAttribute(notificationEClass, NOTIFICATION__MESSAGE);
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  private boolean isInitialized = false;

  /**
   * Complete the initialization of the package and its meta-model.  This
   * method is guarded to have no affect on any invocation but its first.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public void initializePackageContents()
  {
    if (isInitialized) return;
    isInitialized = true;

    // Initialize package
    setName(eNAME);
    setNsPrefix(eNS_PREFIX);
    setNsURI(eNS_URI);

    // Create type parameters

    // Set bounds for type parameters

    // Add supertypes to classes
    timeTableEClass.getESuperTypes().add(this.getElement());
    eventEClass.getESuperTypes().add(this.getElement());
    basicEventEClass.getESuperTypes().add(this.getEventType());
    conditionalEventEClass.getESuperTypes().add(this.getEventType());
    roomEventEClass.getESuperTypes().add(this.getBasicEvent());
    closeByEClass.getESuperTypes().add(this.getBasicEvent());
    transitionAreaEClass.getESuperTypes().add(this.getBasicEvent());
    actionEClass.getESuperTypes().add(this.getElement());
    simpleActionEClass.getESuperTypes().add(this.getAction());
    sequentialActionEClass.getESuperTypes().add(this.getAction());
    parallelActionEClass.getESuperTypes().add(this.getAction());

    // Initialize classes and features; add operations and parameters
    initEClass(contextAwareModelEClass, ContextAwareModel.class, "ContextAwareModel", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
    initEReference(getContextAwareModel_Elements(), this.getElement(), null, "elements", null, 0, -1, ContextAwareModel.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);

    initEClass(elementEClass, Element.class, "Element", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
    initEAttribute(getElement_Name(), ecorePackage.getEString(), "name", null, 0, 1, Element.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);

    initEClass(timeTableEClass, TimeTable.class, "TimeTable", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
    initEReference(getTimeTable_DateFrom(), this.getDate(), null, "dateFrom", null, 0, 1, TimeTable.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
    initEReference(getTimeTable_DateTo(), this.getDate(), null, "dateTo", null, 0, 1, TimeTable.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
    initEReference(getTimeTable_Weekdays(), this.getWeekDayTime(), null, "weekdays", null, 0, -1, TimeTable.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);

    initEClass(dateEClass, Date.class, "Date", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
    initEAttribute(getDate_Year(), ecorePackage.getEInt(), "year", null, 0, 1, Date.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
    initEAttribute(getDate_Month(), ecorePackage.getEInt(), "month", null, 0, 1, Date.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
    initEAttribute(getDate_Day(), ecorePackage.getEInt(), "day", null, 0, 1, Date.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);

    initEClass(weekDayTimeEClass, WeekDayTime.class, "WeekDayTime", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
    initEAttribute(getWeekDayTime_Day(), ecorePackage.getEString(), "day", null, 0, 1, WeekDayTime.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
    initEReference(getWeekDayTime_TimeFrom(), this.getTime(), null, "timeFrom", null, 0, 1, WeekDayTime.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
    initEReference(getWeekDayTime_TimeTo(), this.getTime(), null, "timeTo", null, 0, 1, WeekDayTime.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);

    initEClass(timeEClass, Time.class, "Time", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
    initEAttribute(getTime_Hours(), ecorePackage.getEInt(), "hours", null, 0, 1, Time.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
    initEAttribute(getTime_Minutes(), ecorePackage.getEInt(), "minutes", null, 0, 1, Time.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);

    initEClass(eventEClass, Event.class, "Event", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
    initEAttribute(getEvent_HasAction(), ecorePackage.getEBoolean(), "hasAction", null, 0, 1, Event.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
    initEReference(getEvent_ActionType(), this.getActionType(), null, "actionType", null, 0, 1, Event.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
    initEReference(getEvent_Events(), this.getEventType(), null, "events", null, 0, -1, Event.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);

    initEClass(eventTypeEClass, EventType.class, "EventType", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);

    initEClass(basicEventEClass, BasicEvent.class, "BasicEvent", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);

    initEClass(conditionalEventEClass, ConditionalEvent.class, "ConditionalEvent", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
    initEReference(getConditionalEvent_Basic(), this.getBasicEvent(), null, "basic", null, 0, 1, ConditionalEvent.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
    initEAttribute(getConditionalEvent_Logic(), ecorePackage.getEString(), "logic", null, 0, 1, ConditionalEvent.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
    initEReference(getConditionalEvent_Nested(), this.getEventType(), null, "nested", null, 0, 1, ConditionalEvent.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);

    initEClass(roomEventEClass, RoomEvent.class, "RoomEvent", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
    initEAttribute(getRoomEvent_EventType(), ecorePackage.getEString(), "eventType", null, 0, 1, RoomEvent.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
    initEAttribute(getRoomEvent_Name(), ecorePackage.getEString(), "name", null, 0, 1, RoomEvent.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
    initEAttribute(getRoomEvent_HasTime(), ecorePackage.getEBoolean(), "hasTime", null, 0, 1, RoomEvent.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
    initEReference(getRoomEvent_Time(), this.getTimeTable(), null, "time", null, 0, 1, RoomEvent.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);

    initEClass(closeByEClass, CloseBy.class, "CloseBy", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
    initEAttribute(getCloseBy_Name(), ecorePackage.getEString(), "name", null, 0, 1, CloseBy.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
    initEReference(getCloseBy_Attributes(), this.getEventAttributes(), null, "attributes", null, 0, -1, CloseBy.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);

    initEClass(transitionAreaEClass, TransitionArea.class, "TransitionArea", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
    initEAttribute(getTransitionArea_From(), ecorePackage.getEString(), "from", null, 0, 1, TransitionArea.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
    initEReference(getTransitionArea_AttributesFrom(), this.getEventAttributes(), null, "attributesFrom", null, 0, -1, TransitionArea.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
    initEAttribute(getTransitionArea_To(), ecorePackage.getEString(), "to", null, 0, 1, TransitionArea.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
    initEReference(getTransitionArea_AttributesTo(), this.getEventAttributes(), null, "attributesTo", null, 0, -1, TransitionArea.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);

    initEClass(eventAttributesEClass, EventAttributes.class, "EventAttributes", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
    initEAttribute(getEventAttributes_HasRadius(), ecorePackage.getEBoolean(), "hasRadius", null, 0, 1, EventAttributes.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
    initEAttribute(getEventAttributes_Radius(), ecorePackage.getEInt(), "radius", null, 0, 1, EventAttributes.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
    initEAttribute(getEventAttributes_HasTime(), ecorePackage.getEBoolean(), "hasTime", null, 0, 1, EventAttributes.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
    initEReference(getEventAttributes_Time(), this.getTimeTable(), null, "time", null, 0, 1, EventAttributes.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
    initEAttribute(getEventAttributes_HasTolerance(), ecorePackage.getEBoolean(), "hasTolerance", null, 0, 1, EventAttributes.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
    initEAttribute(getEventAttributes_Tolerance(), ecorePackage.getEInt(), "tolerance", null, 0, 1, EventAttributes.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);

    initEClass(actionEClass, Action.class, "Action", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
    initEReference(getAction_Event(), this.getEvent(), null, "event", null, 0, 1, Action.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);

    initEClass(simpleActionEClass, SimpleAction.class, "SimpleAction", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
    initEReference(getSimpleAction_ActionType(), this.getActionType(), null, "actionType", null, 0, 1, SimpleAction.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);

    initEClass(sequentialActionEClass, SequentialAction.class, "SequentialAction", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
    initEReference(getSequentialAction_ActionType(), this.getActionType(), null, "actionType", null, 0, -1, SequentialAction.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);

    initEClass(parallelActionEClass, ParallelAction.class, "ParallelAction", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
    initEReference(getParallelAction_ActionType(), this.getActionType(), null, "actionType", null, 0, -1, ParallelAction.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);

    initEClass(actionTypeEClass, ActionType.class, "ActionType", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
    initEReference(getActionType_ActionType(), ecorePackage.getEObject(), null, "actionType", null, 0, 1, ActionType.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);

    initEClass(vibrateEClass, Vibrate.class, "Vibrate", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
    initEAttribute(getVibrate_Vibrate(), ecorePackage.getEString(), "vibrate", null, 0, 1, Vibrate.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
    initEAttribute(getVibrate_HasDuration(), ecorePackage.getEBoolean(), "hasDuration", null, 0, 1, Vibrate.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
    initEAttribute(getVibrate_Duration(), ecorePackage.getEString(), "duration", null, 0, 1, Vibrate.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);

    initEClass(playSoundEClass, PlaySound.class, "PlaySound", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
    initEAttribute(getPlaySound_PlaySound(), ecorePackage.getEString(), "playSound", null, 0, 1, PlaySound.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
    initEAttribute(getPlaySound_SoundFileName(), ecorePackage.getEString(), "soundFileName", null, 0, 1, PlaySound.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);

    initEClass(playMediaEClass, PlayMedia.class, "PlayMedia", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
    initEAttribute(getPlayMedia_PlayMedia(), ecorePackage.getEString(), "playMedia", null, 0, 1, PlayMedia.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
    initEAttribute(getPlayMedia_MediaFileName(), ecorePackage.getEString(), "mediaFileName", null, 0, 1, PlayMedia.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);

    initEClass(openBrowserEClass, OpenBrowser.class, "OpenBrowser", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
    initEAttribute(getOpenBrowser_OpenBrowser(), ecorePackage.getEString(), "openBrowser", null, 0, 1, OpenBrowser.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
    initEAttribute(getOpenBrowser_Url(), ecorePackage.getEString(), "url", null, 0, 1, OpenBrowser.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);

    initEClass(notificationEClass, Notification.class, "Notification", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
    initEAttribute(getNotification_Notification(), ecorePackage.getEString(), "notification", null, 0, 1, Notification.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
    initEAttribute(getNotification_Message(), ecorePackage.getEString(), "message", null, 0, 1, Notification.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);

    // Create resource
    createResource(eNS_URI);
  }

} //EventXPackageImpl
